package com.ls.utils.pay;

import com.thoughtworks.xstream.annotations.XStreamAlias;

import java.io.Serializable;

import javax.xml.bind.annotation.XmlRootElement;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * 微信预支付返回值
 *
 * @param
 * @author andyliu
 * @date 5/28/2018 4:23 PM
 * @return
 */
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@XmlRootElement(name = "xml") //XML文件中的根标识
public class WechatOrderReturn implements Serializable {

    //基础信息
    @XStreamAlias("return_code")
    private String return_code;
    /**
     * 事件结果的结果码
     */
    @XStreamAlias("result_code")
    private String result_code;
    @XStreamAlias("return_msg")
    private String return_msg;
    //内容信息
    /**
     * MP_APPID
     */
    @XStreamAlias("appid")
    private String appid;
    /**
     * 商户号
     */
    @XStreamAlias("mch_id")
    private String mch_id;
    /**
     * 设备号
     */
    @XStreamAlias("device_info")
    private String device_info;
    /**
     * 随机字符串，长度要求在32位以内。
     */
    @XStreamAlias("nonce_str")
    private String nonce_str;
    /**
     * 符合ISO 4217标准的三位字母代码，默认人民币：CNY，详细列表请参见货币类型
     */
    @XStreamAlias("out_trade_no")
    private String out_trade_no;
    /**
     * 订单总金额，单位为分，详见支付金额
     */
    @XStreamAlias("fee_type")
    private String fee_type;
    /**
     * 小程序取值如下：JSAPI，详细说明见参数规定
     */
    @XStreamAlias("trade_type")
    private String trade_type;
    /**
     * 登录时的开放id
     */
    @XStreamAlias("openid")
    private String openid;
    /**
     * 通过签名算法计算得出的签名值，详见签名生成算法,本行务必放在最后
     */
    @XStreamAlias("sign")
    private String sign;
    /**
     * 预览的id需要返回给前端使用
     */
    @XStreamAlias("prepay_id")
    private String prepay_id;
    /**
     * 币种
     */
    @XStreamAlias("cash_fee_type")
    private String cash_fee_type;
    /**
     * 交易状态
     */
    @XStreamAlias("trade_state")
    private String trade_state;
    /**
     * 交易状态描述
     */
    @XStreamAlias("trade_state_desc")
    private String trade_state_desc;
    /**
     * 微信退款号
     */
    @XStreamAlias("refund_id")
    private String refund_id;
    /**
     * 微信支付交易订单号
     */
    @XStreamAlias("transaction_id")
    private String transaction_id;
    /**
     * 发送的完成xml格式
     */
    @XStreamAlias("requestXml")
    private String requestXml;
    /**
     * 发送的完成xml格式
     */
    @XStreamAlias("returnXml")
    private String returnXml;

}
